package com.hqd.ch03.v43.context;

import java.util.Locale;

/**
 * 国际化接口
 */
public interface MessageSource {
    /**
     * 获取信息，带默认值
     *
     * @param code
     * @param args
     * @param defaultMessage
     * @param locale
     * @return
     */
    String getMessage(String code, Object[] args, String defaultMessage, Locale locale);

    /**
     * 获取信息，不带默认值
     *
     * @param code
     * @param args
     * @param locale
     * @return
     * @throws NoSuchMessageException
     */
    String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException;

    /**
     * 功能类似，不过MessageSourceResolvable将国际化信息封装成一个类
     *
     * @param resolvable
     * @param locale
     * @return
     * @throws NoSuchMessageException
     */
    String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException;
}
